package com.loader;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/**
 * @author: csh
 * @Date: 2021/12/11 21:46
 * @Description:加载阶段的测试
 */
public class LoadingTest {
    public static void main(String[] args) {
        try {
            Class clazz = Class.forName("java.lang.String");
            //获取当前运行时类声明的所有方法
            Method[] ms = clazz.getDeclaredMethods();
            for (Method m : ms) {
                //获取当前每一个方法的修饰符;
                String mod = Modifier.toString(m.getModifiers());
                System.out.print(mod + " ");
                //获取方法的返回值类型
                String returnType = m.getReturnType().getSimpleName();
                System.out.print(returnType + " ");
                //获取方法名
                System.out.print(m.getName() + "（ ");
                Class<?>[] ps = m.getParameterTypes();
                //获取方法的参数列表
                if(ps.length == 0 ){
                    System.out.print(")");
                }
                for (int i = 0; i < ps.length; i++) {
                    char end = (i == ps.length -1) ? ')' : ',';
                    //获取参数的类型
                    System.out.println(ps[i].getSimpleName() + end);
                }
                System.out.println();
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
